<?php
class Somi_Plugin_Nummergenerator 
{
		public function auftragnummer(){
		
		$erg=array();
        $firmencode='SO1';
        array_push($erg,$firmencode);
        
		$zahlensysteme= array(0=>'A',1=>'B',2=>'C',3=>'D',4=>'E',5=>'F',6=>'G',7=>'H',8=>'I',9=>'J',
							10=>'K',11=>'L',12=>'M',13=>'N',14=>'O',15=>'P',16=>'Q',17=>'R',18=>'S',19=>'T',
							20=>'U',21=>'V',22=>'W',23=>'X',24=>'Y',25=>'Z');

		$date=new Zend_Date('1. 1. 2000'); // 1. Januar 2000
        $date2=new Zend_Date('de_DE'); // Heute
        $heute= $date2->get('dd.MM.yyyy');
        

        $diff=$date2->sub($date)/(24*60*60);	
			
    	// Dezimalzahl festlegen
		$dez = $dez_backup = $diff;
		$bin = array();
		// Solange dividieren bis 0 im Zähler steht
		while($dez > 0) {		
		// Array mit Rest auffüllen
		array_push($bin, $dez % 26);
		// Nur mit Ganzzahl weiterrechnen
		$dez = floor($dez / 26);		
		}
		
		// Array umdrehen
		$bin = array_reverse($bin);
		
		for($i=0;$i<count($bin);$i++) {
		
		    for($x=0;$x<count($zahlensysteme);$x++){
		    	if(current($bin)==$x){
		    		array_push($erg,$zahlensysteme[$x]);
		    	}
		    }
		next($bin);
		}
		
		$db= Zend_Registry::get('db');
		$sql='SELECT count(auftrag_id) AS `anzahl` FROM `auftrag` WHERE created LIKE "'.$heute.'%"';
		$anzahl=$db->fetchAll($sql);
		array_push($erg,$anzahl[0]['anzahl']+1);
		
		foreach($erg as $value){$ergibness.= $value;}
		return $ergibness;
		
	}
	
	public function rechnungsnummer($id){
		$erg=array();
		$day=array();
		$firma=new Somi_Models_Firma();			
		$firma = $firma->getFirma($id);	
		

        $firmencode=$firma->firmenkurzel;

        array_push($erg,strtoupper($firmencode));
        
		$zahlensysteme= array(0=>'A',1=>'B',2=>'C',3=>'D',4=>'E',5=>'F',6=>'G',7=>'H',8=>'I',9=>'J',
							10=>'K',11=>'L',12=>'M',13=>'N',14=>'O',15=>'P',16=>'Q',17=>'R',18=>'S',19=>'T',
							20=>'U',21=>'V',22=>'W',23=>'X',24=>'Y',25=>'Z');

		$date=new Zend_Date('1. 1. 2000'); // 1. Januar 2000
        $date2=new Zend_Date('de_DE'); // Heute
        $diff=$date2->sub($date)/(24*60*60);	
			
    	// Dezimalzahl festlegen
		$dez = $dez_backup = $diff;
		$bin = array();
		// Solange dividieren bis 0 im Zähler steht
		while($dez > 0) {		
		// Array mit Rest auffüllen
		array_push($bin, $dez % 26);
		// Nur mit Ganzzahl weiterrechnen
		$dez = floor($dez / 26);		
		}
		
		// Array umdrehen
		$bin = array_reverse($bin);
		
		for($i=0;$i<count($bin);$i++) {
		
		    for($x=0;$x<count($zahlensysteme);$x++){
		    	if(current($bin)==$x){
		    		array_push($erg,$zahlensysteme[$x]);
		    		array_push($day,$zahlensysteme[$x]);
		    	}
		    }
		next($bin);
		}
		foreach($day as $value){$suche.= $value;}
		$db= Zend_Registry::get('db');
		$sql='SELECT count(auftrag_id) AS `anzahl` FROM `auftrag` WHERE rechnungs_nr LIKE "%'.$suche.'%"';
		$anzahl=$db->fetchAll($sql);
		array_push($erg,$anzahl[0]['anzahl']+1);
		
		foreach($erg as $value){$ergibness.= $value;}
		return $ergibness;
	}
}